package ASAExpression;

import exceptions.ExecutionException;

/**
 * Classe permettant l'ajout 
 * du signe négatif devant une expression
 * @author D.romain
 * @author O.riad
 */
public class ASANegatif extends ASAExpr {

    private ASAExpr e1;
    
    /**
     * Constructeur prenant en paramètre
     * une ASAExpr 
     * @param e1 ASAExpr
     */
    public ASANegatif(ASAExpr e1){
        this.e1 = e1;
    }
    
    /**
     * Retourne l'expression a signer
     * @return L'ASAExpr a signer
     */
    @Override
    public ASAExpr getExpr1() {
        return this.e1;
    }

    /**
     * NON IMPLEMENTÉE
     * @return null
     */
    @Override
    public ASAExpr getExpr2() {
        return null;
    }
    
    /**
     * Ajoute le site négatif (-) 
     * à l'expression
     * @return (+)ASAExpr
     * @throws ExecutionException 
     */
    @Override
    public int evalue() throws ExecutionException{
        return -(e1.evalue());
    }

    /**
     * Renvoie le resultat de l'ajout du signe
     * @return String resultat de l'évaluation
     * @throws ExecutionException 
     */
    @Override
    public String getLabelExplorateur() throws ExecutionException {
        return "MOINS_UN " + this.evalue();
    }
    
}
